package com.demarc.pesquisas.web.relatorio;

import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.demarc.pesquisas.negocio.dto.DetalheEntrevistaDTO;

public class RelatorioDetalheEntrevistaPesquisaFamiliarInaja extends
        AbstractRelatorioPesquisaFamiliarInaja {

    private static final long serialVersionUID = 1L;

    private TipoRelatorioEnum tipoRelatorio;
    private String sequencial;
    private String localidade;
    private String nomeResponsavel;
    private final List<DetalheEntrevistaDTO> listAccount;

    public RelatorioDetalheEntrevistaPesquisaFamiliarInaja(TipoRelatorioEnum tipoRelatorio,
            String localidade, List<DetalheEntrevistaDTO> listAccount) {

        this.tipoRelatorio = tipoRelatorio;
        this.localidade = localidade;
        this.listAccount = listAccount;
    }

    public RelatorioDetalheEntrevistaPesquisaFamiliarInaja(TipoRelatorioEnum tipoRelatorio,
            String sequencial, String localidade, String nomeResponsavel,
            List<DetalheEntrevistaDTO> listAccount) {

        this.tipoRelatorio = tipoRelatorio;
        this.sequencial = sequencial;
        this.localidade = localidade;
        this.nomeResponsavel = nomeResponsavel;
        this.listAccount = listAccount;
    }

    @Override
    public String getJasperFileLocation() {
        return "/reports/relatorio-detalhe-entrevista.jasper";
    }

    @Override
    protected List<DetalheEntrevistaDTO> getReportData() {
        return listAccount;
    }

    @Override
    public String getTitle() {
        String titulo = StringUtils.EMPTY;
        switch (this.tipoRelatorio) {
            case INDIVIDUAL:
                titulo =
                        "RelatorioDetalheEntrevistaSequencial-" + this.sequencial + "-"
                                + this.localidade + "-" + this.nomeResponsavel;
                break;

            case GERAL:
                titulo =
                        "RelatorioDetalhesEntrevistaPesquisaFamiliarInaja-"
                                + super.getTipoLocalidade(this.localidade);
                break;
        }
        return titulo;
    }

    @Override
    protected void addCommonParameters() {
        getReportParameters().put("PARAMETER_TITLE", getTitle());
    }

    public TipoRelatorioEnum getTipoRelatorio() {
        return tipoRelatorio;
    }

    public void setTipoRelatorio(TipoRelatorioEnum tipoRelatorio) {
        this.tipoRelatorio = tipoRelatorio;
    }

    public String getSequencial() {
        return sequencial;
    }

    public void setSequencial(String sequencial) {
        this.sequencial = sequencial;
    }

    public String getLocalidade() {
        return localidade;
    }

    public void setLocalidade(String localidade) {
        this.localidade = localidade;
    }

    public String getNomeResponsavel() {
        return nomeResponsavel;
    }

    public void setNomeResponsavel(String nomeResponsavel) {
        this.nomeResponsavel = nomeResponsavel;
    }
}
